package inter;

import symbols.*;

public class Else extends Stmt {
    Expr expr;
    Stmt stmt1, stmt2;
    public Else(Expr x, Stmt s1, Stmt s2) {
	expr = x; stmt1 = s1; stmt2 = s2;
	if (expr.type != Type.Bool)
	    expr.error("boolean required in if");
    }
    public void gen(int b, int a) {
	int label1 = newlabel();
	int label2 = newlabel();
	expr.jumping(0, label2);
	emitlabel(label1);
	stmt1.gen(label1, a);
	emit("goto L" + a);
	emitlabel(label2);
	stmt2.gen(label2, a);
    }
}
